package org.dromara.demo.designPattern.isp.service;

/**
 * 模拟场景
 * 对于接口隔离的场景，在平时简单的业务开发中可能不会遇到，也可能体
 * 现得不明显。为了让大家更好地理解，举一个《王者荣耀》中英雄技能的例
 * 子，如果由你来开发这样的功能，会怎样设计？
 * 《王者荣耀》里有很多英雄，可以分为射手、战士、刺客等，每个英雄有
 * 三种技能。这些技能该如何定义，让每个英雄实现相应的技能效果呢？接下来
 * 就分别使用两种不同的方式实现，来体现设计原则的应用。
 */
//违背原则方案
public interface ISkill {

    //灼日之矢
    void doArchery();
    // 隐袭
    void doInvisible();

    // 技能沉默
    void doSilent();
    // 眩晕
    void doVertigo();

    /**
     * 这里提供了四个技能的接口，包括射箭、隐袭、沉默、眩晕，每个英雄都
     * 实现这个接口。接下来实现两个英雄：后羿和廉颇。当然，这里为了说明问题
     * 进行了简化，英雄技能只有三个，与真实游戏中有所差别
     */

}
